home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 18 / CU Amiga Magazine's Super CD-ROM 18 (1997)(EMAP Images)(GB)[!][issue 1998-01].iso / CUCD / Programming / ModemLink / Source / smakefile < prev   
Makefile  |  1997-10-26  |  5KB  |  145 lines

  1. ##
  2. ## Makefile for modemlink.device and modemlink.lib.
  3.  
  4. ## Since modemlink was designed to be both a device and linked library
  5. ## creating a makefile that would generate both at the same time was
  6. ## a little tricky.
  7. ##
  8. ## There are some modules that are used by both the device and lib (Modem.c,
  9. ## Link.c, ModemLinkTask.c, ModemLinkDevAPI.c, CRC.c and DeviceStuff.c), some
  10. ## that are only used by the device (ModemLinkDev.c) and some only used by the
  11. ## linked library version (ModemTags.c, LinkTags.c and ModemLinkAPI.c).
  12. ##
  13. ## All the modules for the device are compiled with the libcode option on,
  14. ## while the linked library modules are not.  Since many modules are shared
  15. ## the object modules are put into two different directories.  The device
  16. ## modules are put into dev/ while the linked lib ones are put into lib/.  The
  17. ## only modules that are not put into one of these two directories are CRC.c
  18. ## and DeviceStuff.c because they work fine the way they are compiled in both
  19. ## versions.
  20.  
  21.  
  22. DPATH   = dev/
  23. LPATH   = lib/
  24.  
  25. DEVOPTS = libcode
  26. LIBOPTS = 
  27.  
  28. DEVLIBS = $(DPATH)Modem.o $(DPATH)Link.o $(DPATH)ModemLinkTask.o \
  29.           $(DPATH)ModemLinkDevAPI.o $(DPATH)ModemLinkDev.o CRC.o \
  30.           DeviceStuff.o
  31.  
  32. LIBS    = $(LPATH)Modem.o $(LPATH)Link.o $(LPATH)ModemLinkTask.o \
  33.           $(LPATH)ModemLinkDevAPI.o $(LPATH)ModemLinkAPI.o       \
  34.           $(LPATH)ModemTags.o $(LPATH)LinkTags.o CRC.o DeviceStuff.o
  35.  
  36. LIBDEVLIBS = $(DPATH)ModemDevTags.o $(DPATH)LinkDevTags.o
  37.  
  38.  
  39. all: modemlink.device ModemLinkDev.lib ModemLink.lib
  40.  
  41. clean:
  42.      delete \#?.o \#?.lnk \#?.lib \#?.device dev/\#?.o lib/\#?.o
  43.  
  44. ##
  45. ## use these to copy the device and lib(s) to the standard distribution
  46. ## directories.  These are mainly used when testing or about to release
  47. ## modemlink.
  48. ##
  49. update000:
  50.      copy modemlink.lib /lib/ModemLink_000.lib
  51.      copy modemlinkdev.lib /lib/ModemLinkDev.lib
  52.      copy modemlink.device /Devs/modemlink_000.device
  53.  
  54. update020:
  55.      copy modemlink.lib /lib/ModemLink_020.lib
  56.      copy modemlink.device /Devs/modemlink_020.device
  57.  
  58. ##
  59. ## here's the modules user programs will need to interface with:
  60. ##
  61.  
  62. modemlink.device: $(DEVLIBS) ModemLinkDev_pragmas.h
  63.      slink with <<
  64. from lib:devent.o lib:devinitr.o $(DEVLIBS)
  65. lib lib:sc.lib
  66. libVersion 36
  67. libRevision 2
  68. to modemlink.device
  69. libfd ModemLinkDev.fd
  70. <
  71.  
  72. ModemLinkDev_pragmas.h: ModemLinkDev.fd
  73.      fd2pragma ModemLinkDev.fd ModemLinkDev_pragmas.h
  74.  
  75. ModemLinkDev.lib: $(LIBDEVLIBS)
  76.      oml ModemLinkDev.lib r $(LIBDEVLIBS)
  77.  
  78. ModemLink.lib: $(LIBS)
  79.      oml ModemLink.lib r $(LIBS)
  80.  
  81. ##
  82. ## Following modules used for device routines
  83. ##
  84.  
  85. $(DPATH)ModemLinkDev.o: ModemLinkDev.c
  86.      sc $(DEVOPTS) ModemLinkDev.c nolink objname $(DPATH)ModemLinkDev.o
  87.  
  88. $(DPATH)Link.o: Link.c Link.h CRC.h DeviceStuff.h
  89.      sc $(DEVOPTS) Link.c nolink objname $(DPATH)Link.o
  90.  
  91. $(DPATH)LinkDevTags.o: LinkDevTags.c LinkDevTags.h Link.h ModemLinkDev_pragmas.h
  92.      sc LinkDevTags.c nolink objname $(DPATH)LinkDevTags.o
  93.  
  94. $(DPATH)Modem.o: Modem.c Modem.h CRC.h DeviceStuff.h
  95.      sc $(DEVOPTS) Modem.c nolink objname $(DPATH)Modem.o
  96.  
  97. $(DPATH)ModemDevTags.o: ModemDevTags.c ModemDevTags.h Modem.h ModemLinkDev_pragmas.h
  98.      sc ModemDevTags.c nolink objname $(DPATH)ModemDevTags.o
  99.  
  100. $(DPATH)ModemLinkTask.o: ModemLinkTask.c ModemLinkTask.h Modem.h Link.h DeviceStuff.h
  101.      sc $(DEVOPTS) ModemLinkTask.c nolink objname $(DPATH)ModemLinkTask.o
  102.  
  103. $(DPATH)ModemLinkAPI.o: ModemLinkAPI.c ModemLinkAPI.h ModemLinkDevAPI.h
  104.      sc $(DEVOPTS) ModemLinkAPI.c nolink objname $(DPATH)ModemLinkAPI.o
  105.  
  106. $(DPATH)ModemLinkDevAPI.o: ModemLinkDevAPI.c ModemLinkDevAPI.h
  107.      sc $(DEVOPTS) ModemLinkDevAPI.c nolink objname $(DPATH)ModemLinkDevAPI.o
  108.  
  109. ##
  110. ## Following modules used for lib routines
  111. ##
  112.  
  113. $(LPATH)Link.o: Link.c Link.h CRC.h DeviceStuff.h
  114.      sc Link.c nolink objname $(LPATH)Link.o
  115.  
  116. $(LPATH)LinkTags.o: LinkTags.c LinkTags.h Link.h
  117.      sc LinkTags.c nolink objname $(LPATH)LinkTags.o
  118.  
  119. $(LPATH)Modem.o: Modem.c Modem.h CRC.h DeviceStuff.h
  120.      sc Modem.c nolink objname $(LPATH)Modem.o
  121.  
  122. $(LPATH)ModemTags.o: ModemTags.c ModemTags.h Modem.h
  123.      sc ModemTags.c nolink objname $(LPATH)ModemTags.o
  124.  
  125. $(LPATH)ModemLinkTask.o: ModemLinkTask.c ModemLinkTask.h Modem.h Link.h DeviceStuff.h
  126.      sc ModemLinkTask.c nolink objname $(LPATH)ModemLinkTask.o
  127.  
  128. $(LPATH)ModemLinkAPI.o: ModemLinkAPI.c ModemLinkAPI.h ModemLinkDevAPI.h
  129.      sc ModemLinkAPI.c nolink objname $(LPATH)ModemLinkAPI.o
  130.  
  131. $(LPATH)ModemLinkDevAPI.o: ModemLinkDevAPI.c ModemLinkDevAPI.h
  132.      sc ModemLinkDevAPI.c nolink objname $(LPATH)ModemLinkDevAPI.o
  133.  
  134.  
  135. ##
  136. ## Following routines used by both the device and lib modules
  137. ##
  138.  
  139. CRC.o: CRC.c CRC.h
  140.      sc CRC.c nolink objname CRC.o
  141.  
  142. DeviceStuff.o: DeviceStuff.c DeviceStuff.h
  143.      sc DeviceStuff.c nolink objname DeviceStuff.o
  144.  
  145.